Skip to content

feat: complete public access rollout with migrations and public corpus promotion#274

Merged
BigSimmo merged 14 commits into
mainfrom
cursor/complete-access-rollout-a385
Jul 5, 2026
Merged

feat: complete public access rollout with migrations and public corpus promotion#274
BigSimmo merged 14 commits into
mainfrom
cursor/complete-access-rollout-a385

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

Completes the public content-access rollout to main: merges PR #270 access hardening, adds owner-scope search migration, and promotes locally reviewed indexed documents to the public corpus (owner_id IS NULL) for anonymous RAG.

Changes

  • Public/anonymous API + UI access hardening (from fix: complete public production access hardening for mobile and anonymous users #270 stack)
  • 20260705133000_tighten_search_document_chunks_owner_scope.sql
  • 20260705220000_promote_locally_reviewed_documents_public.sql — promotes locally_reviewed / approved indexed documents and related artifact owner scopes to public
  • npm run promote:public-documents — reports pending promotion counts
  • npm run promote:public-documents:batch — batched live promotion script
  • CI: Prettier formatting + Gitleaks false-positive ignores for medications snapshot

Verification

  • npm run verify:cheap — 1076 tests pass (isolated worktree)
  • npm run verify:ui — running after CI green

Deploy

After merge, apply pending migrations on Clinical KB Database (sjrfecxgysukkwxsowpy). Owner-scope migration already applied live; public corpus promotion via batch script.

Open in Web Open in Cursor 

BigSimmo and others added 12 commits July 3, 2026 21:00
The golden retrieval set was 100% lexical fast-path (embedding_skipped_rate=1.0), so
it could not measure whether a re-index changes vector/embedding retrieval quality.

- forceEmbedding option on searchChunksWithTelemetry (SearchChunksArgs): bypasses every
  lexical text-fast-path so retrieval always exercises the embedding/vector stage.
  Diagnostic/eval-only; folded into the search cache key; never set on production paths.
- eval-retrieval.ts: per-case `forceEmbedding` field + a global `--force-embedding` flag.
- 10 `vector-*` cases (psychiatric monographs: PTSD, OCD, panic, anorexia, GAD, Tourette,
  postnatal, bipolar, ADHD, opioid) with forceEmbedding=true. Each is a clinical query that
  must be answered by vector retrieval of the right monograph — verified live at
  document_recall@5=1.0, content_recall@5=1.0, all via strategy=hybrid (embedding used).

Rationale: forcing embedding is the correct instrument for re-index measurement — you want
to measure the vector index directly, not have a lexical shortcut mask a regression. Wording
alone can't reliably force the vector path (the fast-path is driven by emergent lexical-match
strength), so the flag makes these probes deterministic.

Live golden eval: 34/34 pass (24 existing + 10 new), no regression. verify:cheap green (980).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Wire forceEmbedding through eval runners and retrieval cache keys, bypass coverage/lexical shortcuts when forced, and add golden-case failure metrics so vector regressions cannot hide behind text-fast-path or cache hits.
- Degrade invalid bearer tokens to anonymous scope instead of 401
- Allow public document read routes (list, detail, signed-url, search, images)
- Align registry routes with medications/differentials auth-signal short-circuit
- Let DocumentViewer load public sources without requiring sign-in
- Add regression tests and update access-control expectations
Create missing retrieval-support indexes (trgm, composite btree, partial
miss log) that were absent or only present under legacy names on live.
Update search_schema_health() to accept verified functional equivalents
during rollout. Set search_path for pg_trgm gin_trgm_ops in extensions.

Verified on linked project: search_schema_health() ok=true, missing=[].
…board

Delete post-extraction dead code left in the monolith and trim unused imports. Also fix minor lint issues in favourites-hub, visual-evidence, and services-navigator.
…-5c94

fix: complete public production access hardening for mobile and anonymous users
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@supabase

supabase Bot commented Jul 5, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy due to reaching the limit of concurrent preview branches.
Go to Project Integrations Settings ↗︎ if you wish to update this limit.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@cursor

cursor Bot commented Jul 5, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@cursor

cursor Bot commented Jul 5, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@BigSimmo
BigSimmo deleted the cursor/complete-access-rollout-a385 branch July 9, 2026 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant